package com.ctshk.rpc.order.air.req.app;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;

/**
 * @BelongsProject: ctshk-cloud
 * @BelongsPackage: com.ctshk.rpc.order.air.req.app
 * @Author: hef
 * @CreateTime: 2021-05-20 14:09
 * @Description: 描述
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class OrderTouristReq implements Serializable {
    @ApiModelProperty(value = "旅客类型")
    private Integer touristType;

    @NotBlank(message = "姓氏不能为空")
    @ApiModelProperty(value = "旅客姓", required = true)
    private String surname;

    @NotBlank(message = "旅客名不能为空")
    @ApiModelProperty(value = "旅客名", required = true)
    private String name;

    @NotNull(message = "称谓不能为空")
    @ApiModelProperty(value = "称谓(1:先生;2:女士;3:小姐;4:男童;5:女童)", required = true)
    private Integer appellation;

    @NotNull(message = "手机区号id不能为空")
    @ApiModelProperty(value = "手机区号id", required = true)
    private Long contactMobileAreaCodeId;

    @NotBlank(message = "手机区号不能为空")
    @ApiModelProperty(value = "手机区号", required = true)
    private String contactMobileAreaCode;

    @NotBlank(message = "手机号不能为空")
    @ApiModelProperty(value = "手机号", required = true)
    private String contactMobile;

    @ApiModelProperty(value = "电子邮箱")
    private String email;

    @NotNull(message = "旅客国籍类型不能为空")
    @ApiModelProperty(value = "旅客国籍类型", required = true)
    private Long nationalityId;

    @NotBlank(message = "旅客国籍类型名称不能为空")
    @ApiModelProperty(value = "旅客国籍类型名称", required = true)
    private String nationalityName;

    @NotNull(message = "出生日期不能为空")
    @ApiModelProperty(value = "出生日期", required = true)
    private LocalDate birthday;

    @NotBlank(message = "证件类型不能为空")
    @ApiModelProperty(value = "证件类型", required = true)
    private String certificatesType;

    @NotNull(message = "证件类型ID不能为空")
    @ApiModelProperty(value = "证件类型ID", required = true)
    private Long certificatesTypeId;

    @NotBlank(message = "证件号码不能为空")
    @ApiModelProperty(value = "证件号码", required = true)
    private String certificatesNumber;

    @NotNull(message = "证件有效期不能为空")
    @ApiModelProperty(value = "证件有效期至", required = true)
    private LocalDate vaildDate;

    @ApiModelProperty(value = "旅客凭证JSON")
    private String touristCertificateJson;

}
